package com.stylefeng.guns.modular.system.model;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.stylefeng.guns.core.validater.Insert;
import com.stylefeng.guns.core.validater.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 系统用户表
 * </p>
 *
 * @author stylefeng
 * @since 2018-08-24
 */
@Data
@TableName("sys_user_cw")
@ApiModel(value="用户对象实体",description="用户对象user")
public class UserCw extends Model<UserCw> {

    private static final long serialVersionUID = 1L;

    /**
     * 用户编号
     */
    @TableId(value = "su_id",type= IdType.AUTO)
    @ApiModelProperty(value="用户编号",name="suId")
    @NotNull(message = "用户编号不能为空",groups = Update.class)
    private Integer suId;
    /**
     * 角色编号
     */
    @TableField("sr_id")
    @ApiModelProperty(value="角色编号",name="srId")
    @NotNull(message = "角色编号不能为空",groups = {Insert.class})
    private String srId;

    /**
     * 主岗ID
     */
    @TableField("sp_id")
    @ApiModelProperty(value="主岗ID",name="spId")
    private Integer spId;
    /**
     * 兼职岗位ID
     */
    @TableField("sup_id")
    @ApiModelProperty(value="兼职岗位ID",name="supId")
    private String supId;
    /**
     * 机构编号
     */
    @TableField("so_id")
    @ApiModelProperty(value="机构编号",name="soId")
    @NotNull(message = "机构编号不能为空",groups = {Insert.class,Update.class})
    private Integer soId;
    /**
     * 登录名
     */
    @TableField("su_login_name")
    @ApiModelProperty(value="登录名",name="suLoginName")
    @NotNull(message = "登录名不能为空",groups = {Insert.class,Update.class})
    private String suLoginName;
    /**
     * 登录密码
     */
    @TableField("su_login_pwd")
    @ApiModelProperty(value="登录密码",name="suLoginPwd")
    @NotNull(message = "登录密码不能为空",groups = {Insert.class})
    private String suLoginPwd;
    /**
     * 盐
     */
    @TableField("su_salt")
    @ApiModelProperty(value="盐",name="suSalt")
    private String suSalt;
    /**
     * 手机号码
     */
    @TableField("su_phone")
    @ApiModelProperty(value="手机号码",name="suPhone")
    private String suPhone;
    /**
     * 邮箱号
     */
    @TableField("su_email")
    @ApiModelProperty(value="邮箱号",name="suEmail")
    @NotNull(message = "邮箱不能为空",groups = {Insert.class})
    private String suEmail;
    /**
     * 创建时间
     */
    @TableField("create_time")
    @ApiModelProperty(value="创建时间",name="createTime",hidden = true)
    private Date createTime;
    /**
     * 创建人
     */
    @TableField("create_user")
    @ApiModelProperty(value="创建人",name="createUser",hidden = true)
    private String createUser;
    /**
     * 用户状态
     */
    @TableField("su_state")
    @ApiModelProperty(value="用户状态(1：启用  2：冻结  3：删除）",name="suState")
    
    private Integer suState;
    /**
     * 显示顺序
     */
    @TableField("su_sort")
    @ApiModelProperty(value="显示顺序",name="suSort")
    private Integer suSort;
    /**
     * 用户头像ID
     */
    @TableField("su_img")
    @ApiModelProperty(value="用户头像ID",name="suImg")
    private String suImg;
    /**
     * 证件类型
     */
    @TableField("su_idcard_type")
    @ApiModelProperty(value="证件类型",name="证件类型")
    private String suIdcardType;
    /**
     * 证件号码
     */
    @TableField("su_idcard_num")
    @ApiModelProperty(value="证件号码",name="suIdcardNum")
    private String suIdcardNum;
    /**
     * 姓名
     */
    @TableField("sui_name")
    @ApiModelProperty(value="姓名",name="suiName")
    private String suiName;
    /**
     * 拼音
     */
    @TableField("sui_py")
    @ApiModelProperty(value="拼音",name="suiPy")
    private String suiPy;
    /**
     * 全拼
     */
    @TableField("sui_py_all")
    @ApiModelProperty(value="全拼",name="suiPyAll")
    private String suiPyAll;
    /**
     * 拼音首字母
     */
    @TableField("sui_py_first")
    @ApiModelProperty(value="拼音首字母",name="suiPyFirst")
    private String suiPyFirst;
    /**
     * 性别
     */
    @TableField("sui_sex")
    @ApiModelProperty(value="性别",name="suiSex")
    private Integer suiSex;
    /**
     * 民族
     */
    @TableField("sui_nation")
    @ApiModelProperty(value="民族",name="suiNation")
    private String suiNation;

    @TableField("sui_birthday")
    @ApiModelProperty(value="生日",name="suiBirthday")
    private Date suiBirthday;
    /**
     * 备注
     */
    @TableField("sui_remark")
    @ApiModelProperty(value="备注",name="suiRemark")
    private String suiRemark;
    /**
     * 更新时间
     */
    @TableField("update_time")
    @ApiModelProperty(value="更新时间",name="updateTime",hidden = true)
    private  Date updateTime;
    /**
     * 更新人
     */
    @TableField("update_user")
    @ApiModelProperty(value="更新人",name="updateUser",hidden = true)
    private String updateUser;

  @Override
    protected Serializable pkVal() {
        return this.suId;
    }

}
